// 版权归 Epic Games, Inc. 所有。保留所有权利。

#pragma once

#include "Engine/DeveloperSettings.h"
#include "LyraTextHotfixConfig.generated.h"

struct FPolyglotTextData;
struct FPropertyChangedEvent;

/**
 * 此类允许热修复任何地方的单个FText值
 */

UCLASS(config=Game, defaultconfig)
class ULyraTextHotfixConfig : public UDeveloperSettings
{
	GENERATED_BODY()

public:
	/** 构造函数 */
	ULyraTextHotfixConfig(const FObjectInitializer& ObjectInitializer);

	// UObject 接口
	virtual void PostInitProperties() override; // 后初始化属性
	virtual void PostReloadConfig(FProperty* PropertyThatWasLoaded) override; // 重新加载配置后
#if WITH_EDITOR
	virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override; // 编辑属性后
#endif
	// UObject 接口结束

private:
	/** 应用文本替换 */
	void ApplyTextReplacements() const;

private:
	// 要热修复的FText值列表
	UPROPERTY(Config, EditAnywhere)
	TArray<FPolyglotTextData> TextReplacements; // 文本替换数组
};